//
//  UINavigationControllerDelegate.swift
//  Documentation
//
//  Created by Toj on 2/7/23.
//

public protocol UINavigationControllerDelegate : NSObjectProtocol {

    
    // Called when the navigation controller shows a new top view controller via a push, pop or setting of the view controller stack.
    @available(iOS 2.0, *)
    optional func navigationController(_ navigationController: UINavigationController, willShow viewController: UIViewController, animated: Bool)

    @available(iOS 2.0, *)
    optional func navigationController(_ navigationController: UINavigationController, didShow viewController: UIViewController, animated: Bool)

    
    @available(iOS 7.0, *)
    optional func navigationControllerSupportedInterfaceOrientations(_ navigationController: UINavigationController) -> UIInterfaceOrientationMask

    @available(iOS 7.0, *)
    optional func navigationControllerPreferredInterfaceOrientationForPresentation(_ navigationController: UINavigationController) -> UIInterfaceOrientation

    
    @available(iOS 7.0, *)
    optional func navigationController(_ navigationController: UINavigationController, interactionControllerFor animationController: UIViewControllerAnimatedTransitioning) -> UIViewControllerInteractiveTransitioning?

    
    @available(iOS 7.0, *)
    optional func navigationController(_ navigationController: UINavigationController, animationControllerFor operation: UINavigationController.Operation, from fromVC: UIViewController, to toVC: UIViewController) -> UIViewControllerAnimatedTransitioning?
}

